Apparatus for acquiring pseudo noise code and direct sequence code division multiple access receiver including the same

ABSTRACT

An apparatus for acquiring a pseudo noise (PN) code and a direct-sequence code division multiple access (DS-CDMA) receiver are provided. The apparatus for acquiring a pseudo noise (PN) code includes a PN code generator for generating K PN codes, a multiplexer for multiplying a received signal by +1 or −1 according to the value of a PN code selected to be a reference code among K PN codes and outputting the multiplication result, 2 K−1 accumulators for accumulating the outputs of the multiplexer according to a predetermined control signal, a selector for outputting the control signal so that the output of the multiplexer can input to one of the accumulators according to (K−1) code values excluding the reference code, a programmable adder for adding the outputs of the accumulators to each other according to a predetermined regulation and outputting K correlation values, and a discriminator for outputting the PN code having a correlation value larger than a predetermined value among the K correlation values. It is possible to reduce the amount of operations by grouping codes during a hybrid search where K code phases are simultaneously searched by the DS-CDMA receiver and to simplify the structure of hardware.

This application claims priority under 35 U.S.C. §§119 and/or 365 to 99-18853 filed in Korea on May 25, 1999; the entire content of which is hereby incorporated by Reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an apparatus for acquiring a pseudo noise (PN) code and a direct sequence code division multiple access (DS-CDMA) receiver including the same.

2. Description of the Related Art

CDMA is a type of spread-spectrum communication method, and is used for the interim standard (IS)-95 system, which is currently the mobile communication standard of Korea. Active research on CDMA is being currently made as the CDMA has been proposed for the international mobile telecommunication (IMT)-2000.

The CDMA system is popular since it has various advantages compared with other systems. In the CDMA system, it is not possible to distinguish noise from a transmission signal in a channel since the signal is spread using a PN code. Therefore, interception cannot be performed unless a correct code is known. Also, the CDMA system is resistant to intentional jamming due to the characteristic of the spread-spectrum system. A diversity effect is obtained in the CDMA system since a RAKE receiver is used in a multi-path channel.

The spread-spectrum method adopted in the IS-95 system is a direct sequence (DS) spread-spectrum. In the DS spread-spectrum, the spectrum is spread by multiplying the PN code, which has a duration (referred to as chip duration) much smaller than symbol duration, with a signal to be transmitted. Namely, the spectrum is spread by multiplying 64 binary PN codes with one binary symbol to be transmitted. One symbol is divided into 64 chips.

A receiver despreads a received DS spread-spectrum signal and detects symbols as they were prior to being spread. In order to despread the received DS spread-spectrum signal, it is important to acquire PN code synchronization. The synchronization of the PN code is realized by two steps of code acquisition and tracking and plays a very important role in determining the performance of the system.

In DS spread-spectrum, code acquisition can be performed by various methods. In the most commonly used method, the receiver generates the PN code using the same PN code generator as the PN code generator used in a transmitter, obtains partial correlation between the PN code and a received signal, compares the partial correlation value with a threshold value, and determines whether the code is acquired. Such a process is referred to as search.

A search range is one period of the PN code during the code acquisition. The search is performed until the phase of the PN code coincides with that of the received signal by obtaining the partial correlation value while changing the phase of the code in one period of the PN code. The one period of the PN code to be searched is referred to as an uncertainty region. In the IS-95 system, since the number of the PN code is 32768(=2¹⁵), 32768 code phases are to be searched in the worst case. The uncertainty region can be divided into several sections and those sections can be searched using different correlators. The search method is divided into a serial search method, a parallel search method, and a hybrid search method according to how many correlators are to be used for searching the uncertainty region.

In the serial search method, the entire uncertainty region is searched using one correlator. In the serial search method, the code is acquired by repeating processes of obtaining a correlation value with respect to one code phase, determining whether the code is acquired, and searching another phase when the code is not acquired. In the serial search method, hardware is much less complex than in the parallel and hybrid search methods, since only one correlator is necessary. However, much more time is spent on acquiring the code than in the other methods.

In the parallel search method, the code is acquired using the correlator in parallel with respect to the entire uncertainty region. In the parallel search method, much less time is spent on acquiring the code than in the serial search method, since the entire uncertainty region is searched at one time. However, since as many correlators as the number of the code are necessary, the complexity of hardware increases in proportion to the number of correlators.

In the hybrid search method where the serial search method and the parallel search method are combined, the uncertainty region is divided into several regions and is searched by several correlators. Namely, the correlators of the serial search method, where the regions to be searched are reduced, search the uncertainty regions in parallel. Therefore, in the hybrid search method, it is possible to reduce time spent on acquiring the code compared to in the serial search method and to reduce the complexity of hardware compared to in the parallel search method.

The structure of the correlator for obtaining the partial correlation value during the code acquisition is divided into an active correlator and a PN matched filter.

In the active correlator, the partial correlation value is obtained by multiplying one input data with one code generated by the PN code generator and integrating the multiplication result for an N-chip duration. That is to say, the PN code of N bits is integrated chip-by-chip.

FIG. 1 shows the structure of a hybrid searching unit in which the conventional active correlator is used. The searching unit shown in FIG. 1 includes a PN code generator 100, a plurality of multiplexers MUXs 102, 103, and 104, and a plurality of accumulators 105, 106, and 107. As shown in FIG. 1, a hybrid searching unit searches the uncertainty region by using K different PN code phases at one time. The PN code generator 100 generates K PN codes having different phases. The PN code which is a binary code has a value of 0 or 1. The MUXs 102, 103, and 104 output +d_(n) when the PN code is 0 and output −d_(n) when the PN code is 1. Namely, the MUXs 102, 103, and 104 output d_(n) when the PN code is 0 and output −d_(n) when the PN code is 1 from input data d_(n) received at a chip rate and the PN codes generated by the PN code generator 100. The output data of the MUXs 102, 103, and 104 are accumulated by the K accumulators 105, 106, and 107 for a certain time. The accumulated values become partial correlation values S₀ through S_(K−1) with respect to K different PN code phases. The partial correlation values are finally compared with predetermined threshold values. Accordingly, it is determined whether the code is acquired.

However, this method has a problem in that a long time is spent on acquiring the code, since one partial correlation value is obtained with respect to the input data of N bits.

FIG. 2A shows the configuration of a hybrid searching unit in which the conventional PN matched filter is used. The hybrid searching unit shown in FIG. 2A includes N delayers 200, a first N-code storage portion 201, a second N-code storage portion 202, and a Kth N-code storage portion 203. As shown in FIG. 2A, delayers 200 delay the input data d_(n) for the chip duration. The code storage portions 201, 202, and 203 store the PN codes in advance. The N input data output from the delayer 200 are multiplied with the respective codes stored in each code storage portion 201, 202, and 203 and the multiplication results are added to each other, thus obtaining the partial correlation values S₀ through S_(K−1) are obtained. The partial correlation values are finally compared with predetermined threshold values. Accordingly, it is determined whether the code is acquired.

FIG. 2B shows the PN matched filter corresponding to a (K−1)th code storage portion among the PN matched filters shown in FIG. 2A. The PN matched filter shown in FIG. 2B includes a (K−1)th code storage portion 203, a plurality of multipliers 211, 212, and 213, and an adder 214.

The multipliers 211, 212, and 213 multiply the input data of N bits d_(N−1) through d₀ input from the delayers 200 shown in FIG. 2A with N codes c_(K−1,N−1) through c_(K−1,0), respectively. The adder 214 adds the outputs of the multipliers 211, 212, and 213 to each other and outputs the partial correlation value S_(K−1) with respect to the (K−1)th code phase.

Meanwhile this method has an advantage in that it is possible to reduce time spent on acquiring the code since one correlation value is obtained with respect to one input data, this method places a large burden on the hardware, since the PN codes must be previously stored and has a problem in that the performance of the searching unit is largely dependent on signal attenuation according to fading channels.

Also, when the code is acquired using the above-mentioned hybrid searching unit, the number of operations for obtaining the partial correlation values linearly increases in proportion to increases in the number K of code phases or the number of correlation sections increases.

SUMMARY OF THE INVENTION

To solve the above problem, it is an object of the present invention to provide an apparatus for acquiring a pseudo noise (PN) code by grouping K generated PN codes according to a predetermined regulation, determining one among the K PN codes to be a reference code, multiplying a received signal with the reference code in each group, adding the multiplication results to each other, and sharing the addition result when the partial correlation value between the received signal and the PN code is obtained in order to acquire the PN code included in the received signal and a direct-sequence code division multiple access (DS-CDMA) receiver including the same.

According to an aspect of the present invention, there is provided an apparatus for acquiring a pseudo noise (PN) code, comprising a PN code generator for generating K PN codes, a multiplexer for multiplying a received signal by +1 or −1 according to the value of a PN code selected to be a reference code among K PN codes and outputting the multiplication result, 2^(K−1) accumulators for accumulating the outputs of the multiplexer according to a predetermined control signal, a selector for outputting the control signal so that the output of the multiplexer can input to one of the accumulators according to (K−1) code values excluding the reference code, a programmable adder for adding the outputs of the accumulators to each other according to a predetermined regulation and outputting K correlation values, and a discriminator for outputting the PN code having a correlation value larger than a predetermined value among the K correlation values.

According to another aspect of the present invention, there is provided an apparatus for acquiring a PN code, comprising a PN code generator for generating PN codes of N-bit sequences having K different phases, a reference code storage portion for storing one of the K N-bit code sequences generated by the PN code generator, N taped delay lines for delaying a received signal N times, a multiplier for multiplying the output of the Nth tapped delay lines with the PN codes stored in the reference code register, a sub-summer for grouping generated PN codes according to a predetermined regulation, adding the outputs of the multiplier in each group to each other according to the groups to which the code bits stored in the reference code register belong and obtaining 2^(K−1) sub-sums, a programmable adder for adding the outputs of the sub-summer to each other according to a predetermined regulation and outputting K correlation values, and a discriminator for outputting the PN code having a correlation value larger than a predetermined threshold value among the K correlation values.

There is provided a direct-sequence code division multiple access (DS-CDMA) receiver for searching a PN code included in a received signal and despreading and demodulating the received signal using the searched PN code, comprising a PN code generator for generating PN codes of an N-bit sequence having K different phases, a code synchronizer by code grouping for grouping K PN codes generated by the PN code generator according to a predetermined regulation, determining one of the K PN codes to be a reference code, summing the multiplications of the received signal with the reference code in each group, determining a PN code having a correlation value larger than a threshold value among K correlation values obtained by adding the summed values according to a predetermined regulation to be the PN code included in the received signal, and synchronizing the phase of the determined PN code with the phase of the received signal, a despreader for despreading the received signal using the determined PN code, and a demodulator for demodulating the despread signal.

BRIEF DESCRIPTION OF THE DRAWINGS

The above object and advantages of the present invention will become more apparent by describing in detail a preferred embodiment thereof with reference to the attached drawings in which:

FIG. 1 shows the structure of a hybrid searching unit in which a conventional active correlator is used;

FIG. 2A shows the structure of a hybrid searching unit in which a conventional pseudo noise (PN) matched filter is used;

FIG. 2B shows the PN matched filter corresponding to a (K−1)th code storage portion among the PN matched filters shown in FIG. 2A in detail;

FIG. 3A is a block diagram of an apparatus for acquiring PN code according to the present invention;

FIG. 3B is a block diagram showing the addressing logic of FIG. 3A in detail;

FIG. 4 is a block diagram of the apparatus for acquiring the PN code according to the present invention; and

FIG. 5 is a block diagram of a DS-CDMA receiver according to the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, embodiments of the present invention will be described in more detail with reference to the attached drawings.

FIG. 3A is a block diagram of an apparatus for acquiring a pseudo noise (PN) code according to the present invention. The apparatus for acquiring the PN code shown in FIG. 3A includes a PN code generator 300, a multiplexer (MUX) 310, an addressing logic 320, a switch 330, an accumulator 340, a programmable adder 350, and a discriminator 360.

The entire operation of the PN code acquiring apparatus shown in FIG. 3A will now be described. K codes, which can be generated by the PN code generator, are divided into groups according to a predetermined regulation. A sub-sum is obtained in each group by only one reference code among the K codes. Remaining (K−1) correlation values are obtained by sharing the sub-sum. K correlation values are compared with a threshold value. The PN code having the correlation value larger than the threshold value is determined to be the PN code of a received signal.

The PN code generator 300 generates PN codes c_(0,n), c_(1,n), . . . , and c_(K−1,n) having K different phases with respect to one input data d_(n) received at a predetermined chip rate.

The MUX 310 outputs d_(n) when a reference code value is 0 and outputs −d_(n) when the reference code value is 1, inputting the input data d_(n) and the reference code to the MUX 310. At this time, the reference code is arbitrarily selected from among the PN codes generated by the PN code generator 300. In the present specification, c_(0,n) is determined to be the reference code.

The addressing logic 320 designates the accumulator in which the output values of the MUX 310 are accumulated among 2^(K−1) accumulators 340. FIG. 3B is a block diagram showing the addressing logic 320 in detail. The addressing logic shown in FIG. 3B includes a plurality of exclusive OR gates (XOR) 371, 372, and 373 and a register 380 of (K−1) bits. The XOR gates 371, 372, and 373 perform exclusive OR operations, using the reference code c_(0,n) and c_(1,n), c_(2,n), . . . , c_(K−1,n) as inputs. Namely, the XORs 371, 372, and 373 output [c_(1,n), c_(2,n), . . . , c_(K−1,n)] when c_(0,n)=0 and output [{overscore (c)}_(1,n),{overscore (c)}_(2,n), . . . ,{overscore (c)}_(K−1,n)] when c_(0,n)=1. As a result, the same address is generated with respect to the PN code which belongs to the same group to be described hereinafter. The register 380 stores the values output from the XORs 371, 372, and 373.

The switch 330 outputs the output values of the MUX 310 to one of the 2^(K−1) accumulators which is selected by regarding the values stored in the register 380 as an address to the accumulators. The accumulator 340 accumulates input values and outputs sub-sums. As a result, the sub-sums are obtained by accumulating the output values of the MUX 310 with respect to the PN codes which belong to the same group.

The programmable adder 350 outputs partial correlation values S₀, . . . , S_(K−1) with respect to K PN code phases by adding the sub-sums output from the accumulator 340 according to a predetermined regulation.

The discriminator 360 determines the PN code having the phase which makes the partial correlation value larger than the threshold value among the partial correlation values S₀, . . . , S_(K−1) to be the PN code of the received signal.

Processes of the addressing logic 320, the switch 330, the accumulator 340, and the programmable adder 350, which group the codes and calculate the partial correlation values, will now be described in detail.

The process of grouping the codes will now be described. Let's assume that the correlation values between the K codes and the received signals are obtained for an N-bit chip duration, while simultaneously searching the K code phases. The respective PN codes are represented by the following Equations when the PN codes are C₀, C₁, . . . , and C_(K−1) and the nth component of C_(k) (0≦k≦K−1) is c_(k,n)(0≦n≦N−1). $\begin{matrix} {{C_{0} = \left\lbrack \quad \begin{matrix} C_{0,0} & {C_{0,1}\quad \ldots \quad C_{0,{N - 1}}} \end{matrix}\quad \right\rbrack}{C_{1} = \left\lbrack \quad \begin{matrix} C_{1,0} & {C_{1,1}\quad \ldots \quad C_{1,{N - 1}}} \end{matrix}\quad \right\rbrack}\cdots {C_{K - 1} = \left\lbrack \quad \begin{matrix} C_{{K - 1},0} & {C_{{K - 1},1}\quad \ldots \quad C_{{K - 1},{N - 1}}} \end{matrix}\quad \right\rbrack}} & (1) \end{matrix}$

A (K×N) matrix C is defined as follows.

C=[C ₀ C ₁ . . . C _(K−1)]^(T) =[D ₀ D ₁ . . . D _(N−1)]  (2)

The matrix C according to the PN codes will now be described, taking a case where K is 2 as an example. When K is 2, the number of cases of D_(n)=(c_(0,n), c_(1,n)) is 4 and the respective cases can be expressed as (1,1), (−1,−1), (1,−1), and (−1,1). The four combinations are divided into two groups according to whether c_(0,n)=c_(1,n) or c_(0,n)=−c_(1,n). The group of D_(n) which belongs to the former and the group of D_(n) which belongs to the latter are referred to as G₀ and G₁, respectively.

For example, if the PN code sequences having two different phases are C₀={1 1 −1 1 −1} and C₁={1 1 1 −1 −1}, respectively, and input data sequences are d₀, d₁, . . . , and d₄, the partial correlation values S₀ and S₁ with respect to the respective code phases are obtained as follows. $\begin{matrix} {{S_{0} = {{\left( {d_{0} + d_{1} - d_{4}} \right) + \left( {{- d_{2}} + d_{3}} \right)} = {S_{00} + S_{01}}}}{S_{1} = {{\left( {d_{0} + d_{1} - d_{4}} \right) - \left( {{- d_{2}} + d_{3}} \right)} = {S_{00} - S_{01}}}}} & (3) \end{matrix}$

Here, it is noted that S₀₀ is a sub-sum according to input data multiplied with codes which belong to G₀ among the elements of C₀, and that S₀₁ is a sub-sum according to input data multiplied with the codes which belong to G₁. Therefore, once the sub-sum is obtained with respect to only one between the codes of the two phases, it is possible to obtain the partial correlation value in another phase using the obtained sub-sum.

When K is 3, the number of code groups which can be divided according to the pattern of D_(n) is 2²=4. The respective groups are as follows: G0: c_(0,n)=c_(1,n)=c_(2,n), G1: c_(0,n)=c_(1,n)=−c_(2,n), G2: c_(0,n)=−c_(1,n)=c_(2,n), and G3: −c_(0,n)=c_(1,n)=c_(2,n). Namely, (1,1,1) and (−1,−1,−1) belong to G₀. (1,1,−1) and (−1,−1,1) belong to G₁. Also, (1,−1,1) and (−1,1,−1) belong to G₂, and (−1,1,1) and (1,−1,−1) belong to G₃. For example, the code sequences shown in Table 1 are generated.

TABLE 1 D₀ D₁ D₂ D₃ D₄ D₅ D₆ D₇ C₀ 1 1 1 1 −1 −1 −1 1 C₁ 1 −1 −1 −1 1 −1 −1 1 C₂ 1 −1 1 −1 −1 1 −1 −1

In the patterns of the respective columns, D₀ and D₆ belong to G₀, D₅ and D₇ belong to G₁, D₂ and D₄ belong to G₂, and D₁ and D₃ belong to G₃. When the partial correlation value in the kth phase code is referred to as Sk, the partial correlation values with respect to three code phases can be obtained as follows. $\begin{matrix} {{S_{0} = {{\left( {d_{0} - d_{6}} \right) + \left( {{- d_{5}} + d_{7}} \right) + \left( {d_{2} - d_{4}} \right) + \left( {d_{1} + d_{3}} \right)} = {S_{00} + S_{01} + S_{02} + S_{03}}}}{S_{1} = {{\left( {d_{0} - d_{6}} \right) + \left( {{- d_{5}} + d_{7}} \right) - \left( {d_{2} - d_{4}} \right) - \left( {d_{1} + d_{3}} \right)} = {S_{00} + S_{01} - S_{02} - S_{03}}}}{S_{2} = {{\left( {d_{0} - d_{6}} \right) - \left( {{- d_{5}} + d_{7}} \right) + \left( {d_{2} - d_{4}} \right) - \left( {d_{1} + d_{3}} \right)} = {S_{00} - S_{01} + S_{02} - S_{03}}}}} & (4) \end{matrix}$

Here, S₀₀ through S₀₃ are sub-sums of the respective groups obtained from the elements of C₀ which belong to G₀ through G₃. In the case in which K is 3, once as many sub-sums as the number of code groups are obtained with respect to a reference code, it is possible to obtain partial correlation values in all the code phases using the sub-sums.

When K is 4, the number of available code groups is 2^(K−1)=8. When the sub-sums obtained from the code sequences of C₀ which belong to G₀ through G₇ are S₀₀ through S₀₇, the partial correlation values S₀ through S₃ with respect to the code phases from the 0th code phase to the third code phase are obtained as follows. $\begin{matrix} {{S_{0} = {S_{00} + S_{01} + S_{02} + S_{03} + S_{04} + S_{05} + S_{06} + S_{07}}}{S_{1} = {S_{00} + S_{01} + S_{02} + S_{03} - S_{04} - S_{05} - S_{06} - S_{07}}}{S_{2} = {S_{00} + S_{01} - S_{02} - S_{03} + S_{04} + S_{05} - S_{06} - S_{07}}}{S_{3} = {S_{00} - S_{01} + S_{02} - S_{03} + S_{04} - S_{05} + S_{06} - S_{07}}}} & (5) \end{matrix}$

When K is 4, the partial correlation values with respect to the respective codes can be obtained by combining the eight sub-sums obtained from a reference code with each other. In the process of combining the sub-sums with each other, interim calculation results can be shared as follows. $\begin{matrix} {{S_{0} = {{\left( {S_{00} + S_{01} + S_{02} + S_{03}} \right) + \left( {S_{04} + S_{05} + S_{06} + S_{07}} \right)} = {S_{000} + S_{001}}}}{S_{1} = {{\left( {S_{00} + S_{01} + S_{02} + S_{03}} \right) - \left( {S_{04} + S_{05} + S_{06} + S_{07}} \right)} = {S_{000} - S_{001}}}}} & (6) \end{matrix}$

Namely, it is possible to share the sub-sums S₀₀₀ and S₀₀₁ of the sub-sums in the process of adding the sub-sums to each other. When the final partial correlation value is obtained by combining the sub-sums with each other and adding the sub-sums to each other, the following matrix is defined when K is 4. $\begin{matrix} {s = \begin{bmatrix} S_{00} & S_{01} & S_{02} & S_{03} & S_{04} & S_{05} & S_{06} & S_{07} \\ S_{00} & S_{01} & S_{02} & S_{03} & {- S_{04}} & {- S_{05}} & {- S_{06}} & {- S_{07}} \\ S_{00} & S_{01} & {- S_{02}} & {- S_{03}} & S_{04} & S_{05} & {- S_{06}} & {- S_{07}} \\ S_{00} & {- S_{01}} & S_{02} & {- S_{03}} & S_{04} & {- S_{05}} & S_{06} & {- S_{07}} \end{bmatrix}} & (7) \end{matrix}$

The elements of the matrix S are values which are added to each other when the partial correlation values with respect to the respective code phases are obtained, the combinations of the respective sub-sums including signs. Namely, the results obtained by adding the elements of first through fourth rows of the matrix S to each other in a row direction are respectively S₀ through S₃. The number of rows of the matrix S is equal to the number of code phases to be searched, which is 4. The number of columns is equal to the number of sub-sums, which is 8.

At this time, the combination of the elements of the matrix S in the column direction satisfies each condition under which D_(n) is grouped into G₀ through G₇ at only one time. Namely, the combinations of the elements in the first column of the matrix S are (S₀₀=S₀₀=S₀₀=S₀₀), which satisfy the condition for belonging to G₀. The combinations of the elements arranged in the second column are (S₀₁=S₀₁=S₀₁=−S₀₁), which satisfy the condition for belonging to G₁. Therefore, the combinations of the elements of the eight columns can be one-to-one mapped to G₀ through G₇.

When two arbitrary rows of the matrix S are selected and the elements of the two rows are compared with each other, four elements among the eight elements included in one row are equal to four elements among the eight elements included in the other row and the sign of the other four elements in the one row is opposite to the sign of the other four elements in the other row. For example, when the first row is compared with the second row in the matrix shown in Equation 7, the elements of the first through fourth columns in the first row are equal to the elements of the first through fourth columns in the second row and the sign of the elements of the fifth through eighth columns in the first row is opposite to the sign of the elements of the fifth through eighth columns in the second row.

When the matrix which shows only the signs of the elements of the matrix S is defined as S', each column of the matrix S' can be one-to-one mapped to the binary numbers of 0 through 7 when “+” and “−” are converted into “0” and “1”, respectively, as shown in the following Equation. $\begin{matrix} {S^{\prime} = {\begin{bmatrix}  + & + & + & + & + & + & + & + \\  + & + & + & + & - & - & - & - \\  + & + & - & - & + & + & - & - \\  + & - & + & - & + & - & + & -  \end{bmatrix} = {\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ 0 & 0 & 1 & 1 & 0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 \end{bmatrix} = \left\lbrack \quad \begin{matrix} 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \end{matrix}\quad \right\rbrack}}} & (8) \end{matrix}$

Therefore, comparing the elements of each row with each other involves arraying 0 through 7 using the binary system and comparing the respective digits with each other. In general, when 0 through 2^(K−1)−1 among the binary numbers that can be represented by K digits due to the characteristics of the binary numbers, that is, when all numbers that can be represented when the uppermost digit is 0 are arrayed and two arbitrary digits are compared with each other among K digits, half of 2^(K−1) digits are equal to each other and the other half are not equal to each other.

Therefore, two different arbitrary phases can share the sub-sums again in obtaining K partial correlation values when the characteristic of the matrix S is used. As a result, it is possible to reduce the amount of operations one more time. For example, when K is 4, four partial correlation values are obtained as follows. $\begin{matrix} {{S_{0} = {{\left( {S_{00} + S_{01} + S_{02} + S_{03}} \right) + \left( {S_{04} + S_{05} + S_{06} + S_{07}} \right)} = {S_{000} + S_{001}}}}{S_{1} = {{\left( {S_{00} + S_{01} + S_{02} + S_{03}} \right) - \left( {S_{04} + S_{05} + S_{06} + S_{07}} \right)} = {S_{000} - S_{001}}}}{S_{2} = {{\left( {S_{00} - S_{03} + S_{04} - S_{07}} \right) + \left( {S_{01} - S_{02} + S_{05} - S_{06}} \right)} = {S_{002} + S_{003}}}}{S_{3} = {{\left( {S_{00} - S_{03} + S_{04} - S_{07}} \right) - \left( {S_{01} + S_{02} + S_{05} - S_{06}} \right)} = {S_{002} - S_{003}}}}} & (9) \end{matrix}$

As shown in Equation 9, S000 and S₀₀₁ can be shared when S₀ and S₁ are obtained and S₀₀₂ and S₀₀₃ can be shared when S₂ and S₃ are obtained.

FIG. 4 is a block diagram of an apparatus for acquiring a PN code according to the present invention. A PN matched filter is used for the PN code acquiring apparatus, which includes a tapped delay line 410, a reference code storage portion 420, a plurality of multipliers 431, 432, and 433, a sub-summer 440, a programmable adder 450, and a discriminator 460.

The tapped delay line 410 delays and stores input data d_(n) received at a predetermined chip rate.

The reference code storage portion 420 stores PN code sequences of N bits generated by a PN code generator (not shown). This is because it is possible to obtain a sub-sum with respect to one PN code sequence [c_(0,0) c_(0,1) . . . c_(0,N)] by dividing N code bits into 2^(K−1) groups.

The multipliers 431, 432, and 433 multiply the values stored in the tap delay line 410 with the value stored in the reference code storage portion 420.

The sub-summer 440 sums the N outputs of the multipliers 431, 432, and 433 in each group according to the groups to which the code bits stored in the reference code storage portion 420 belong and obtains 2^(K−1) sub-sums.

The programmable adder 450 adds the sub-sums output from the sub-summer 440 to each other according to a predetermined regulation and outputs the partial correlation values S₀, . . . , and S_(K−1) with respect to the K PN code phases.

The discriminator 460 determines the PN code having the phase which makes the partial correlation values larger than the threshold value among the output partial correlation values S₀, . . . , and S_(K−1) to be the PN code of the received signal.

Results of generating four PN code sequences having different phases, whose lengths are 20 bits, using the shift register used for the forward link of the IS-95 system are shown in Table 2. Here, K is 4 and N is 20. Input data are represented as d₀ through d₁₉. The partial correlation values are obtained by correlating for 20 chip duration with respect to four code phases. The lowest row of Table 2 denotes the number of groups to which D_(n) belong.

TABLE 2 D₀ D₁ D₂ D₃ D₄ D₅ D₆ D₇ D₈ D₉ D₁₀ D₁₁ D₁₂ D₁₃ D₁₄ D₁₅ D₁₆ D₁₇ D₁₈ D₁₉ C₀ −1 1 1 1 1 −1 1 −1 −1 −1 −1 1 1 −1 −1 1 −1 −1 1 1 C₁ −1 1 1 −1 −1 1 −1 −1 1 1 −1 1 −1 1 −1 1 1 −1 1 −1 C₂ −1 1 −1 1 −1 1 1 −1 1 −1 1 −1 −1 1 1 −1 −1 1 1 −1 C₃ 1 −1 −1 1 1 −1 −1 1 1 −1 1 1 −1 1 −1 1 1 −1 1 −1 n of G_(n) 1 1 3 4 6 6 5 1 7 4 3 2 7 7 2 2 5 2 0 7

D_(n) is grouped by code patterns in order to obtain the 2⁴⁻¹=8 sub-sums. When a reference PN code is C₀, the sub-sums are represented as follows in the respective code groups. $\begin{matrix} {{{G_{0}\text{:}S_{00}} = d_{18}}{{G_{1}\text{:}S_{01}} = {{- d_{0}} + d_{1} - d_{7}}}{{G_{2}\text{:}S_{02}} = {d_{11} - d_{14} + d_{15} - d_{17}}}{{G_{3}\text{:}S_{03}} = {d_{2} - d_{10}}}{{G_{4}\text{:}S_{04}} = {{- d_{3}} - d_{9}}}{{G_{5}\text{:}S_{05}} = {d_{6} - d_{16}}}{{G_{6}\text{:}S_{06}} = {d_{4} - d_{5}}}{{G_{7}\text{:}S_{07}} = {{- d_{8}} + d_{12} - d_{13} + d_{19}}}} & (10) \end{matrix}$

The number of additions required for obtaining the sub-sums represented in Equation 10 is 20. After sharing the sub-sum of the sub-sums of two pairs of code phases, four partial correlation values are represented as follows. $\begin{matrix} {{S_{0} = {{\left( {S_{00} + S_{01} + S_{02} + S_{03}} \right) + \left( {S_{04} + S_{05} + S_{06} + S_{07}} \right)} = {S_{000} + S_{001}}}}{S_{1} = {{\left( {S_{00} + S_{01} + S_{02} + S_{03}} \right) - \left( {S_{04} + S_{05} + S_{06} + S_{07}} \right)} = {S_{000} - S_{001}}}}{S_{2} = {{\left( {S_{00} - S_{03} + S_{04} - S_{07}} \right) + \left( {S_{01} - S_{02} + S_{05} - S_{06}} \right)} = {S_{002} + S_{003}}}}{S_{3} = {{\left( {S_{00} - S_{03} + S_{04} - S_{07}} \right) - \left( {S_{01} + S_{02} + S_{05} - S_{06}} \right)} = {S_{002} - S_{003}}}}} & (11) \end{matrix}$

The number of additions at this stage is 24. Therefore, 44 additions are required when the partial correlation values with respect to four code phases are obtained by the method according to the present invention. 4×20=80 additions are required according to the conventional method.

FIG. 5 is a block diagram showing a DS-CDMA receiver according to the present invention. The DS-CDMA shown in FIG. 5 includes a PN code generator 500, a code synchronizer by code grouping 510, a despreader 520, and a demodulator 530.

The PN code generator 500 generates K PN codes having different phases with respect to input data d_(n) received at a predetermined chip rate.

The code synchronizer 510 acquires the PN code included in a received signal from a correlation value obtained by correlating a code having K different phases generated by the PN code generator 500 for an N-bit chip duration and the received signal, and acquires PN code synchronization by controlling the phase of the acquired PN code.

The despreader 520 despreads a received signal by using the PN code whose synchronization is controlled by the code synchronizer 510.

The demodulator 530 demodulates the signal despread by the despreader 520 corresponding to the modulation method of a transmitter.

The code synchronizer 510 includes a code acquirer by code grouping 511 and a code tracer 512.

The code acquirer 511 divides K codes generated by the PN code generator 500, into groups according to a predetermined regulation and obtains a sub-sum with respect to the received signal according to the group to which the generated code belongs. After obtaining K correlation values by sharing the sub-sum, the PN code having the correlation value larger than the predetermined threshold value is determined to be the PN code of the received signal.

The code tracer 512 controls the phase of the PN code determined by the code acquirer 511 and synchronizes the PN code with the received signal.

According to the present invention, it is possible to reduce the amount of operations by grouping codes during a hybrid search where K code phases are simultaneously searched by the DS-CDMA receiver, to thus simplify the structure of hardware. For example, in the case of the PN matched filter, when the correlation is obtained for N-chip duration, K×N multiplications are required for one input data item in the conventional technology. However, only K multiplications are required according to the present invention. In the conventional technology, as the number K of code phases to be searched increases, the amount of operations and the complexity of hardware linearly increase in proportion to k. However, according to the present invention, the amount of operations is smaller and the structure of hardware is simpler than the conventional technology, regardless of K. 

What is claimed is:
 1. An apparatus for acquiring a pseudo noise (PN) code, comprising: a PN code generator for generating K PN codes; a multiplexer for multiplying a received signal by +1 or −1 according to the value of a PN code selected to be a reference code among K PN codes and outputting the multiplication result; 2^(K−1) accumulators for accumulating the outputs of the multiplexer according to a predetermined control signal; a selector for outputting the control signal so that the output of the multiplexer can input to one of the accumulators according to (K−1) code values excluding the reference code; a programmable adder for adding the outputs of the accumulators to each other according to a predetermined regulation and outputting K correlation values; and a discriminator for outputting the PN code having a correlation value larger than a predetermined value among the K correlation values.
 2. The apparatus of claim 1, wherein the selector comprises: (K−1) exclusive OR operators for performing an exclusive OR operation on the reference code and the (K−1) codes; a register of (K−1) bits for storing the outputs of the exclusive OR operators; and a switch for selecting one of the 2^(K−1) accumulators by regarding the outputs of the register as an address of the accumulators and inputting the output of the multiplexer to the selected accumulator.
 3. An apparatus for acquiring a PN code, comprising: a PN code generator for generating PN codes of N-bit sequences having K different phases; a reference code storage portion for storing one of the K N-bit code sequences generated by the PN code generator; N taped delay lines for delaying a received signal N times; a multiplier for multiplying the output of the Nth tapped delay lines with the PN codes stored in the reference code register; a sub-summer for grouping generated PN codes according to a predetermined regulation, adding the outputs of the multiplier in each group to each other according to the groups to which the code bits stored in the reference code register belong and obtaining 2^(K−1) sub-sums; a programmable adder for adding the outputs of the sub-summer to each other according to a predetermined regulation and outputting K correlation values; and a discriminator for outputting the PN code having a correlation value larger than a predetermined threshold value among the K correlation values.
 4. A direct-sequence code division multiple access (DS-CDMA) receiver for searching a PN code included in a received signal and despreading and demodulating the received signal using the searched PN code, comprising: a PN code generator for generating PN codes of an N-bit sequence having K different phases; a code synchronizer by code grouping for grouping K PN codes generated by the PN code generator according to a predetermined regulation, determining one of the K PN codes to be a reference code, summing the multiplications of the received signal with the reference code in each group, determining a PN code having a correlation value larger than a threshold value among K correlation values obtained by adding the summed values according to a predetermined regulation to be the PN code included in the received signal, and synchronizing the phase of the determined PN code with the phase of the received signal; a despreader for despreading the received signal using the determined PN code; and a demodulator for demodulating the despread signal.
 5. The DS-CDMA of claim 4, wherein the code synchronizer by code grouping comprises: a code acquirer by code grouping for grouping K PN codes according to a predetermined regulation, determining one of the K PN codes to be a reference code, summing the multiplications of the received signal with the reference code in each group, and determining a PN code having a correlation value larger than a threshold value among K correlation values obtained by adding the summed values according to a predetermined regulation to be the PN code included in the received signal; and a code tracer for synchronizing the phase of the determined PN code with the phase of the received signal.
 6. The DS-CDMA of claim 5, wherein the code acquirer by code grouping comprises: a multiplexer for multiplying a received signal by +1 or −1 according to the value of a PN code selected to be a reference code among K PN codes generated by the PN code generator and outputting the multiplication result; 2^(K−1) accumulators for accumulating the output of the multiplexer according to a predetermined control signal; a selector for outputting the control signal so that the output of the multiplexer can input to one of the accumulators according to (K−1) code values excluding the reference code; a programmable adder for adding the outputs of the accumulators to each other according to a predetermined regulation and outputting K correlation values; and a discriminator for outputting the PN code having a correlation value larger than a predetermined value among the K correlation values.
 7. The DS-CDMA of claim 6, wherein the selector comprises: (K−1) exclusive OR operators for performing an exclusive OR operation on the reference code and the (K−1) codes; a register of (K−1) bits for storing the outputs of the exclusive OR operators; and a switch for selecting one of the 2^(K−1) accumulators by regarding the outputs of the register as an address of the accumulators and inputting the output of the multiplexer to the selected accumulator.
 8. The DS-CDMA of claim 5, wherein the code acquirer by code grouping comprises: a reference code storage portion for storing one of the K N-bit code sequences generated by the PN code generator; N taped delay lines for delaying a received signal N times; a multiplier for multiplying the output of the Nth tapped delay line with the PN code stored in the reference code storage portion; a sub-summer for grouping K PN codes according to a predetermined regulation, adding the outputs of the multiplier in each group to each other according to the groups to which the code bits stored in the reference code register belong and obtaining 2^(K−1) sub-sums; a programmable adder for adding the outputs of the sub-summer to each other according to a predetermined regulation and outputting K correlation values; and a discriminator for outputting the PN code having correlation value larger than a predetermined threshold value among the K correlation values. 